/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 学习.上.this关键字;
/**
 * @description this关键字的使用
 * this可以理解为 当前对象的 xxx
 *
 * 类的方法中 this.方法名/属性调用当前对象的属性或者方法 一般省略这一点
 * 在需要的时候this很方便 this.xxx 指的是类的属性
 *
 * 类的构造器中可以使用 this(形参列表)；来调用本类中其他构造器 且必须是第一条语句
 * 切不可循环调用 有且只有一个调用构造器
 *
 *

 * @author 俊昭
 * @date 2022/3/24
*/
class thisTest {
    public static void main(String[] args) {
        Person p1 =new Person(18,"xiaowang");
        p1.setAge(23);
        System.out.println(p1.getAge());
        Person p2 =new Person(18,"xiaowang",12356);
        p2.show();

    }
}
class Person{
    private int age;
    private String name;
    private int ID;
    // 有年龄调用这个
    public Person(int age){
        this.age =age;
        this.show();// 其实就是省略掉了this
    }
    // 有名字调用这个
    public Person(int age,String name){
        this(age);
        this.name =name;

    }
    // 有ID则调用这个
    public Person(int age,String name,int ID){
        this(age,name);
        this.ID =ID;

    }


    public String getName() {
        return this.name;// 其实就是省略掉了this
    }

    public void setName(String name) {// 此处name是局部变量
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void show(){
        System.out.println("年龄：" + age + "姓名:" + name+"ID:"+ID);
    }
}
